package Linux五种IO模型;

/**
 * @author coderFu
 * @create 2022/3/5
 * java NIO 中 selector选择器的说明
 */
public class SelectorUser {

    /**
     * 问什么使用selector
     * reactor 响应模式
     * 仅用一个线程要处理多个channels 的好处是，减少了
     * 处理通道使用的线程数量，降低了资源的使用，和
     * 由于线程之间切换产生的代价
     * 但是在多核系统里面，可以使用多个线程来处理，增强
     * 并发能力和处理效率，充分利用CPU的计算能力
     *
     * 注意点: 和selector 配合使用的时候，必须将channel注册
     * 到selector中，channel必须是非阻塞的！
     *
     * 确定要监听的类型： 不同的channel 有不同的作用
     * 比如：　服务端的通通负责链接接收客户端
     * 客户端的channel 负责读写数据
     *
     * interest
     * 通道触发了一个事件的意思是该事件已经就绪
     * Connect
     * Accept
     * Read
     * write
     *
     * select（）方法
     * 表示有几个通过已经就绪，为0 表示没有通道继续！！！
     * int select() 阻塞到至少有个通道在你注册的事件上就绪了
     *
     * 每次处理完通道需要将通道移除SelectorKeys （就绪集合中）
     * 在下次就绪是会再次添加进来的
     *
     *
     *
     *
     */
}
